package com.edu.service;

import com.edu.pojo.EduCurriculum;
import com.edu.pojo.EduDept;
import com.edu.pojo.EduTime;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * @author YJF
 */
public interface EduCurService {

    /**
     * 条件分页查找课程列表
     *
     * @param page     页码
     * @param size     显示条数
     * @param curName  课程名称
     * @param allTecId 所有ID集合
     * @return 查询结果
     */
    PageInfo<EduCurriculum> findByPage(String page, String size, String curName, List<Integer> allTecId);

    /**
     * 查找所有时间节点
     *
     * @return 所有时间节点
     */
    List<EduTime> findTime();

    /**
     * 添加课程信息
     *
     * @param eduCurriculum 待添加的课程信息
     * @return 返回响应状态码
     */
    int addCur(EduCurriculum eduCurriculum);

    /**
     * 根据课程ID查询课程
     *
     * @param id 课程ID
     * @return 相关课程信息
     */
    EduCurriculum findOne(Long id);

    /**
     * 根据课程ID修改课程
     *
     * @param eduCurriculum 待修改课程信息
     * @return 响应状态码
     */
    int updateCur(EduCurriculum eduCurriculum);

    /**
     * 根据课程ID删除课程
     *
     * @param id 待删除课程ID
     * @return 响应状态码
     */
    int delCur(Long id);

    /**
     * 查找匹配信息,判断是否可以添加
     *
     * @param id    班级ID
     * @param curId 课程ID
     * @return 响应状态码
     */
    int findCurAndCls(Integer id, Long curId);

    /**
     * 根据课程ID和班级ID向edu_cur_cls中间表添加信息
     *
     * @param id    班级ID
     * @param curId 课程ID
     * @return 添加的班级信息
     */
    EduDept addCurAndCls(Integer id, Long curId);

    /**
     * 根据班级ID和课程ID删除中间表edu_cur_cls相关信息
     *
     * @param id    班级ID
     * @param curId 课程ID
     */
    void delCurAndCls(Integer id, Long curId);
}
